/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.myapp.actions;

import com.myapp.bd.QueryBD;
import com.myapp.bean.InfosStage;
import com.myapp.forms.ModifierStageForm;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 *
 * @author Fabien
 */
public class ModifierStageAction extends Action {

    /**
     * Méthode pour convertir une date (de type String) dans le bon format pour
     * pouvoir faire le parse
     *
     * @param date au format yyyy-MM-dd
     * @return date au format dd/MM/yyyy
     */
    private String convertirDate(String date) {
        String annee;
        String jour;
        String mois;
        StringTokenizer st = new StringTokenizer(date, "-");
        annee = st.nextToken();
        mois = st.nextToken();
        jour = st.nextToken();
        return jour + "/" + mois + "/" + annee;
    }

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws SQLException, ParseException {
        ModifierStageForm cf = (ModifierStageForm) form;
        QueryBD queryBD = new QueryBD();
        int nCandidat = (Integer) request.getSession().getAttribute("nCandidatCo");
        // Lorsque l'étudiant valide ses modifications
        if (cf.getChoix() != null) {
            String res = queryBD.modifierStage(nCandidat, cf.getTitre(), cf.getActivite(), cf.getAdresse(), cf.getCompetences(), cf.getDebut(), cf.getEmailTuteur(), cf.getEntreprise(),
                    cf.getFin(), cf.getNomTuteur(), cf.getPrenomTuteur(), cf.getTelephoneEntreprise(), cf.getTelephoneTuteur(), cf.getDateSignatureC(),
                    cf.getDuree());
            if (res.equals("stageModifie")) {
                return mapping.findForward("stageModifie");
            }

            // Lorsque l'étudiant arrive sur la page "ModifierStage"
        } else {

            InfosStage infosStage = queryBD.verifChampsStages(nCandidat);
            String debut = infosStage.getDebut() + "";
            String fin = infosStage.getFin() + "";
            String dateSignatureC = infosStage.getDateSignatureC() + "";
            debut = convertirDate(debut);
            fin = convertirDate(fin);
            dateSignatureC = convertirDate(dateSignatureC);

            request.setAttribute("datedebut", debut);
            request.setAttribute("datefin", fin);
            request.setAttribute("dateSignatureC", dateSignatureC);
            request.setAttribute("infosStage", infosStage);
            return mapping.findForward("menuModifierStage");
        }
        return null;
    }
}
